Software defined networking (SDN) is a form of network architecture in which a control plane is separated from a data plane and implemented as a software application. This architecture allows network administrators to have programmable logically centralized control of network traffic without requiring physical access to the network's hardware devices. Thus, SDN decouples network control (learning and forwarding decisions) from network topology (junctions, interfaces, and how they peer). Decoupling network control from network topology enables better routing decisions and resource utilization based on centrally collected and managed global network topology, states, and applications or traffic flow patterns. SDN may simplify network operations since centralized controller can pre-specify an alternate routing path and configure network equipment automatically, and global definitions per identity do not have to be matched to each and every interface location. The basic approach to achieve decoupling of the network control from the network topology is to apply globally aware and topology decoupled software control at the edges of the network. The assumption is that traditional topology-coupled bridging and routing drives the core of the network so that scalability, interoperability, high-availability, and extensibility of Internet Protocol (IP) networks can be maintained.
Some of the network nodes within a SDN network may operate in the data plane to forward data to other network nodes within the SDN network. Typically, network nodes may obtain forwarding tables from a SDN controller and use the forwarding tables to route and forward data to other network nodes. Using forwarding tables, unfortunately, increases route convergence time and routing latency. Source routing, as described in the Internet Engineering Task Force (IETF) document draft-ashwood-sdnrg-state-reduction-00.txt, entitled “SDN State Reduction,” published Jul. 3, 2013, which is incorporated herein as if reproduced in its entirety, simplifies data forwarding network nodes and reduces routing time and latency when compared to using a forwarding table. Specifically, source routing appends and records the entire routing information for a path within the data packet. Instead of performing lookup functions using the forwarding table, a network node uses the routing information in a data packet to forward the data packet. However, long and complex paths may have large amounts of route information to represent the entire path. As a result, appending the entire route information to a data packet may reduce the effective size of the payload. Therefore, a more efficient solution is needed to route data through a SDN network.